// source --> http://wessex-asthma.com/wp-content/plugins/cookiecuttr/jquery.cookiecuttr.js?ver=2.0.2 /** * Copyright (C) 2012 Chris Wharton (chris@weare2ndfloor.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT * HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE * OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, * COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.COPYRIGHT HOLDERS WILL NOT * BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL * DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . Documentation available at http://cookiecuttr.com */ (function ($) { $.cookieCuttr = function (options) { var options = $.extend(defaults, options); var message = defaults.cookieMessage.replace('{{cookiePolicyLink}}', defaults.cookiePolicyLink); defaults.cookieMessage = 'We use cookies on this website, you can read about them here. To use the website as intended please...'; //convert options var cookiePolicyLinkIn = options.cookiePolicyLink; var cookieCutter = options.cookieCutter; var cookieCutterDeclineOnly = options.cookieCutterDeclineOnly; var cookieAnalytics = options.cookieAnalytics; var cookieDeclineButton = options.cookieDeclineButton; var cookieAcceptButton = options.cookieAcceptButton; var cookieResetButton = options.cookieResetButton; var cookieOverlayEnabled = options.cookieOverlayEnabled; var cookiePolicyLink = options.cookiePolicyLink; var cookieMessage = message; var cookieAnalyticsMessage = options.cookieAnalyticsMessage; var cookieErrorMessage = options.cookieErrorMessage; var cookieDisable = options.cookieDisable; var cookieWhatAreTheyLink = options.cookieWhatAreTheyLink; var cookieAcceptButtonText = options.cookieAcceptButtonText; var cookieDeclineButtonText = options.cookieDeclineButtonText; var cookieResetButtonText = options.cookieResetButtonText; var cookieWhatAreLinkText = options.cookieWhatAreLinkText; var cookieNotificationLocationBottom = options.cookieNotificationLocationBottom; var cookiePolicyPageMessage = options.cookiePolicyPageMessage; var cookieDiscreetLink = options.cookieDiscreetLink; var cookieDiscreetReset= options.cookieDiscreetReset; var cookieDiscreetLinkText = options.cookieDiscreetLinkText; var cookieDiscreetPosition = options.cookieDiscreetPosition; var cookieNoMessage = options.cookieNoMessage; var cookieAnalyticsId = options.cookieAnalyticsId; cookieDomain = options.cookieDomain; var cookiePolicyPage = $('input#cookiecuttr_privacypage').length == 1; if(cookiePolicyPage) { cookieDeclineButton = true; cookieAcceptButton = true; } // cookie identifier $.cookieCuttr.accepted = $.cookieCuttr.GetCookie('cc_cookie_accept') == "cc_cookie_accept"; $.cookieCuttr.declined = $.cookieCuttr.GetCookie('cc_cookie_decline') == "cc_cookie_decline"; var $cookieAccepted = $.cookieCuttr.GetCookie('cc_cookie_accept') == "cc_cookie_accept"; $.cookieAccepted = function () { return $cookieAccepted; }; var $cookieDeclined = $.cookieCuttr.GetCookie('cc_cookie_decline') == "cc_cookie_decline"; $.cookieDeclined = function () { return $cookieDeclined; }; // write cookie accept button if (cookieAcceptButton) { var cookieAccept = ' '+cookieAcceptButtonText+' '; } else { var cookieAccept = ""; } // write cookie decline button if (cookieDeclineButton) { var cookieDecline = ' '+cookieDeclineButtonText+' '; } else { var cookieDecline = ""; } // write extra class for overlay if (cookieOverlayEnabled) { var cookieOverlay = 'cc-overlay'; } else { var cookieOverlay = ""; } // to prepend or append, that is the question? if( (cookieNotificationLocationBottom) || (cookieDiscreetPosition == "bottomright") || (cookieDiscreetPosition == "bottomleft") ) { var appOrPre = true; } else { var appOrPre = false; } if (($cookieAccepted) || ($cookieDeclined)) { // write cookie reset button if( (cookieResetButton) && (cookieDiscreetReset) ) { if(appOrPre) { $('body').append('
'+cookieResetButtonText+'
'); } else { $('body').prepend('
'+cookieResetButtonText+'
'); } //add appropriate CSS depending on position chosen if (cookieDiscreetPosition == "topleft") { $('div.cc-cookies').css("top", "0"); $('div.cc-cookies').css("left", "0"); } if (cookieDiscreetPosition == "topright") { $('div.cc-cookies').css("top", "0"); $('div.cc-cookies').css("right", "0"); } if (cookieDiscreetPosition == "bottomleft") { $('div.cc-cookies').css("bottom", "0"); $('div.cc-cookies').css("left", "0"); } if (cookieDiscreetPosition == "bottomright") { $('div.cc-cookies').css("bottom", "0"); $('div.cc-cookies').css("right", "0"); } } else if(cookieResetButton) { if(appOrPre) { $('body').append('
'+cookieResetButtonText+'
'); } else { $('body').prepend('
'+cookieResetButtonText+'
'); } } else { var cookieResetButton = ""; } } else { // add message to just after opening body tag if( (cookieNoMessage)&& (!cookiePolicyPage) ) { // show no link on any pages APART from the policy page } else if ( (cookieDiscreetLink) && (!cookiePolicyPage) ) { // show discreet link if(appOrPre) { $('body').append('
'+cookieDiscreetLinkText+'
'); } else { $('body').prepend('
'+cookieDiscreetLinkText+'
'); } //add appropriate CSS depending on position chosen if (cookieDiscreetPosition == "topleft") { $('div.cc-cookies').css("top", "0"); $('div.cc-cookies').css("left", "0"); } if (cookieDiscreetPosition == "topright") { $('div.cc-cookies').css("top", "0"); $('div.cc-cookies').css("right", "0"); } if (cookieDiscreetPosition == "bottomleft") { $('div.cc-cookies').css("bottom", "0"); $('div.cc-cookies').css("left", "0"); } if (cookieDiscreetPosition == "bottomright") { $('div.cc-cookies').css("bottom", "0"); $('div.cc-cookies').css("right", "0"); } } else if (cookieAnalytics) { // show analytics overlay if(appOrPre) { $('body').append('
' + cookieAnalyticsMessage + cookieAccept + cookieDecline + ''+cookieWhatAreLinkText+'
'); } else { $('body').prepend('
' + cookieAnalyticsMessage + cookieAccept + cookieDecline + ''+cookieWhatAreLinkText+'
'); } } if (cookiePolicyPage) { // show policy page overlay if(appOrPre) { $('body').append('
' + cookiePolicyPageMessage + " " + ' '+cookieAcceptButtonText+' ' + ' '+cookieDeclineButtonText+' ' + '
'); } else { $('body').prepend('
' + cookiePolicyPageMessage + " " + ' '+cookieAcceptButtonText+' ' + ' '+cookieDeclineButtonText+' ' + '
'); } } else if ((!cookieAnalytics) && (!cookieDiscreetLink) ) { // show privacy policy option if(appOrPre) { $('body').append('
' + cookieMessage + cookieAccept + cookieDecline + '
'); } else { $('body').prepend('
' + cookieMessage + cookieAccept + cookieDecline + '
'); } } } if ( (cookieCutter) && (!cookieCutterDeclineOnly) && ( ($cookieDeclined) || (!$cookieAccepted) ) ) { $(cookieDisable).html('
' + cookieErrorMessage + ' '+cookieAcceptButtonText+' ' + '
'); } if ( (cookieCutter) && (cookieCutterDeclineOnly) && ($cookieDeclined) ) { $(cookieDisable).html('
' + cookieErrorMessage + ' '+cookieAcceptButtonText+' ' + '
'); } // if bottom is true, switch div to bottom if not in discreet mode if( (cookieNotificationLocationBottom) && (!cookieDiscreetLink) ) { $('div.cc-cookies').css("top", "auto"); $('div.cc-cookies').css("bottom", "0"); } if( (cookieNotificationLocationBottom) && (cookieDiscreetLink) && (cookiePolicyPage) ) { $('div.cc-cookies').css("top", "auto"); $('div.cc-cookies').css("bottom", "0"); } // setting the cookies // for top bar $('.cc-cookie-accept, .cc-cookie-decline').click(function (e) { e.preventDefault(); if ($(this).is('[href$=#decline]')) { $.cookieCuttr.SetCookie("cc_cookie_accept", null, "/"); $.cookieCuttr.SetCookie("cc_cookie_decline", "cc_cookie_decline", "/"); // clear down known google analytics cookies if(cookieDomain) { $.cookieCuttr.SetCookie("__utma", null, "/"); $.cookieCuttr.SetCookie("__utmb", null, "/"); $.cookieCuttr.SetCookie("__utmc", null, "/"); $.cookieCuttr.SetCookie("__utmz", null, "/"); } } else { $.cookieCuttr.SetCookie("cc_cookie_decline", null, "/"); $.cookieCuttr.SetCookie("cc_cookie_accept", "cc_cookie_accept", "/"); } $(".cc-cookies").fadeOut(function () { // reload page to activate cookies location.reload(); }); }); //reset cookies $('a.cc-cookie-reset').click(function(f) { f.preventDefault(); $.cookieCuttr.SetCookie("cc_cookie_accept", null, "/"); $.cookieCuttr.SetCookie("cc_cookie_decline", null, "/"); $(".cc-cookies").fadeOut(function () { // reload page to activate cookies location.reload(); }); }); //cookie error accept $('.cc-cookies-error a.cc-cookie-accept').click(function(g) { g.preventDefault(); $.cookieCuttr.SetCookie("cc_cookie_decline", null, "/"); $.cookieCuttr.SetCookie("cc_cookie_accept", "cc_cookie_accept", "/"); // reload page to activate cookies location.reload(); }); }; $.cookieCuttr.SetCookie = function(name, value, path) { var expires = ''; if(value != null) { ccToday = new Date(); ccExpire = new Date(); ccExpire.setTime(ccToday.getTime() + 3600000*24*365); expires = ';expires='+ccExpire.toGMTString(); } else { expires = ';expires=Thu, 01-Jan-1970 00:00:01 GMT'; value = ''; } if(cookieDomain) { document.cookie = name + '=' +escape(value) + ';path='+path + ';domain=.'+cookieDomain + expires; } else { document.cookie = name + '=' +escape(value) + ';path='+path + expires; } }; $.cookieCuttr.GetCookie = function(name) { if(name.length > 0) { var cookies = ' ' + document.cookie; var start = cookies.indexOf(' ' + name + '='); if(start == -1) { start = cookies.indexOf(';' + name + '='); if(start == -1) { return ''; } } var end = cookies.indexOf(';', start + 1); if(end == -1) { end = cookies.length; } return unescape(cookies.substring(start + name.length + 2, end)); } }; // temporarily set variables for first load $.cookieCuttr.accepted = $.cookieCuttr.GetCookie('cc_cookie_accept') == "cc_cookie_accept"; $.cookieCuttr.declined = $.cookieCuttr.GetCookie('cc_cookie_decline') == "cc_cookie_decline"; // launch plugin on doc ready $(document).ready(function(){ $.cookieCuttr(); }); })(jQuery);